Fix t3c Capability to not continue on error #6626
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This bug causes catastrophic config gen errors if the TO request
for ds_required_caps fails but server_reqs succeeds,
because then no servers have required caps, causing remap lines
for all DSes with required caps to be omitted.
This fixes it by making capability failures fail, rather than
continuing.
It formerly continued, because when capabilities were introduced,
it was necessary to continue if TO was older than t3c/ORT. But
now, the fallback API major version is 3.0, which has Capabilities.
If this bug wasn't fixed by simply always failing, it would have to
be fixed by making a server_caps error also set ds_req_caps to nil.
Which Traffic Control components are affected by this PR?
t3c
, formerly ORT)What is the best way to verify this PR?
Verify t3c fails when it fails to get server_capabilities or delivery_service_required_capabilities, rather than continuing.
If this is a bugfix, which Traffic Control versions contained the bug?
PR submission checklist
[x] This PR has testsno tests, unfortunately the t3c integration test framework isn't capable of simulating TO failures, it would require considerable extension to do so, and this is a TO request so it can't be unit tested.[x] This PR has documentationno docs, no interface change